package br.pucrs.prototipoonline.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.log4j.Logger;
import br.pucrs.prototipoonline.util.DatabaseUtil;
import br.pucrs.prototipoonline.vo.UsuarioVO;


/**
 * 
 * @author Ricardo Luckei
 * @author Gelson Gentil
 *
 */
public class UsuariosDAO extends BaseDAO{
	private static Logger logger = Logger.getLogger(UsuariosDAO.class);
	
	public UsuariosDAO() {
		super();
	}
	
	public UsuarioVO buscarUsuario(UsuarioVO usuario) throws SQLException {
		logger.debug("Entrando");
		StringBuffer sql = new StringBuffer();
		sql.append("select id, nome, email, username, password from usuarios where ");
		sql.append(" username = ? and password = ?");
		
		Connection con = DatabaseUtil.getConnection();

		try {
			PreparedStatement ps = con.prepareStatement(sql.toString());
			ps.setString(1, usuario.getUsername());
			ps.setString(2, usuario.getPassword());
			
			ResultSet rs = ps.executeQuery();
			if(!rs.next()) {
				return null;
			} else {
				UsuarioVO retUsuario = new UsuarioVO();
				populateVO(rs, retUsuario);
				return retUsuario;
			}
		} finally {
			con.close();
		}
	}

	public void criarUsuario(UsuarioVO usuario) throws SQLException {
		StringBuffer sql = new StringBuffer();
		sql.append("insert into usuarios(nome, email, username, password) values(?,?,?,?)");
		
		Connection con = DatabaseUtil.getConnection();
		
		try {
			PreparedStatement ps = con.prepareStatement(sql.toString());
			
			ps.setString(1, usuario.getNome());
			ps.setString(2, usuario.getEmail());
			ps.setString(3, usuario.getUsername());
			ps.setString(4, usuario.getPassword());
			
			ps.execute();
		} finally {
			con.close();
		}
		
	}
	
}
